iT邦幫忙

2023 iThome 鐵人賽

DAY 16
0
SideProject30

拿到一支Garmin錶,要怎麼開發app?系列 第 16

[Day-16] Monkey C的那些規則-10-annotations、unit test

  • 分享至 

  • xImage
  •  

中秋連假一下就過完了,
本來想三天至少有一天能夠專心看程式,
沒想到被其他瑣事纏身,三天就這麼過去了/images/emoticon/emoticon20.gif

今天繼續看Garmin的文件,按照目前的進度...
我擔心30天也看不完,不過還是盡力而為吧!

在Monkey C有以下幾種annotation可以加在class、function、variable,
作用是告訴編譯器這段code的特定用途
1.(:background)
告訴編譯器這段code可以在背景執行

2.(:debug)
告訴編譯器這段code是測試debug使用,編譯正式版本時就不會被包進去

3.(:release)
告訴編譯器這段code是正式版本使用,編譯debug版本時不會被包進去

4.(:test)
告訴編譯器這段code可用於測試module,進行"Run No Evil"測試
範例如下:

class TestMethods {
    (:test)
    static function testThisClass(x)
}

"Run No Evil"是什麼?

我本來以為"Run No Evil"是什麼新的測試術語,
結果原來是Garmin在Connect IQ SDK放的一個單元測試框架

"Run No Evil"僅限作用於Connect IQ模擬器,可以用來debug、執行單元測試,

單元測試有以下幾點要求,
1.程式碼要標明(:test)
2.測試用的function必須要取得一個Test.Logger物件
3.非全域的測試function必須要是static function
範例如下:

// Unit test to check if 2 + 2 == 4
(:test)
function myUnitTest(logger as Logger) as Boolean {
  var x = 2 + 2; logger.debug("x = " + x);
  return (x == 4); // returning true indicates pass, false indicates failure
}

上一篇
[Day-15] Monkey C的那些規則-9-Scoping
下一篇
[Day-17] Monkey C的manifest.xml
系列文
拿到一支Garmin錶,要怎麼開發app?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言